#pragma once

#define T_INT				0
#define T_DOUBLE			1
#define T_STRING			2
#define UTF_STRING			3

union u_val 
{
	int		iint;
	double	ddouble;
	TCHAR*	sstring;
};

class CDataSQL
{
public:
	CDataSQL(void);
	~CDataSQL(void);
	CDataSQL(const int& nType);
	CDataSQL(const int& nType, const int& iInt);
	CDataSQL(const int& nType, const double& dDouble);
	CDataSQL(const int& nType, const CString& sString);

	void setValue(const int& iInt);
	void setValue(const double& dDouble);
	void setValue(const CString& sString);
	void setType(const int& t);

	int		getIntValue() const;
	double	getDoubleValue() const;
	CString getStringValue() const;
	int		getType()  const;

	bool    isIntType() const;
	bool    isDoubleType() const;
	bool    isStringType() const;
protected:
	int m_nType;
	union u_val m_value;
};

typedef std::vector<CDataSQL*> CListData;
